﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace GestorDeFlotasDesktop.AbmTarifa
{
    public partial class AbmTurno : Form
    {
        public AbmTurno(Modelo.FormActions.Actions action, string id)
        {
            InitializeComponent();
            lbl_estado.Text = "ALTA";
            if (action == Modelo.FormActions.Actions.Modificacion || action == Modelo.FormActions.Actions.Baja)
            {
                lbl_estado.Text = "MODIFICACION";

                using (SqlConnection con = Modelo.Modelo.createConnection())
                {
                    SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM NUNCA_TAXI.Turnos WHERE Id_Turno = " + id , con);

                    DataTable dt = new DataTable();

                    da.Fill(dt);

                    tb_desc.Text = dt.Rows[0]["Tu_Descripcion"].ToString();
                    tb_ini.Text = dt.Rows[0]["Tu_Hora_Ini"].ToString();
                    tb_fin.Text = dt.Rows[0]["Tu_Hora_Fin"].ToString();
                    tb_ficha.Text = dt.Rows[0]["Tu_Valor_Ficha"].ToString();
                    tb_bandera.Text = dt.Rows[0]["Tu_Valor_Bandera"].ToString();
                    if (Convert.ToBoolean(dt.Rows[0]["Tu_Habilitado"].ToString()) == false)
                    {
                        cb_habilitado.Checked = false;
                    }
                    else
                    {
                        cb_habilitado.Checked = true;
                    }

                    tb_desc.Enabled = false;

                    if (action == Modelo.FormActions.Actions.Baja)
                    {
                        lbl_estado.Text = "BAJA";
                        gb_car.Enabled = false;
                    }

                    try
                    {
                        Modelo.Modelo.openConnection(con);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    finally
                    {
                        Modelo.Modelo.closeConnection(con);
                    }
                }
            }
        }

        private void AbmTurno_Load(object sender, EventArgs e)
        {

        }

        private void aceptar_Click(object sender, EventArgs e)
        {
            if (tb_bandera.Text != "" && tb_desc.Text != "" && tb_ficha.Text != "" && tb_fin.Text != "" && tb_ini.Text != "")
            {
                using (SqlConnection con = Modelo.Modelo.createConnection())
                {
                    if (lbl_estado.Text == "ALTA")
                    {
                        SqlCommand comando = new SqlCommand("INSERT INTO NUNCA_TAXI.Turnos(Tu_Hora_Ini,Tu_Hora_Fin,Tu_Descripcion,Tu_Valor_Ficha,Tu_Valor_Bandera,Tu_Habilitado) VALUES(@h_ini,@h_fin,@desc,@ficha,@bandera,@habi)", con);
                        comando.Parameters.AddWithValue("h_ini", tb_ini.Text);
                        comando.Parameters.AddWithValue("h_fin", tb_fin.Text);
                        comando.Parameters.AddWithValue("desc", tb_desc.Text);
                        comando.Parameters.AddWithValue("ficha", Convert.ToDecimal(tb_ficha.Text));
                        comando.Parameters.AddWithValue("bandera", Convert.ToDecimal(tb_bandera.Text));
                        if (cb_habilitado.Checked == true)
                        {
                            comando.Parameters.AddWithValue("habi", 1);
                        }
                        else if (cb_habilitado.Checked == false)
                        {
                            comando.Parameters.AddWithValue("habi", 0);
                        }

                        try
                        {
                            Modelo.Modelo.openConnection(con);
                            comando.ExecuteNonQuery();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                        finally
                        {
                            tb_ini.Text = "";
                            tb_fin.Text = "";
                            tb_desc.Text = "";
                            tb_ficha.Text = "";
                            tb_bandera.Text = "";
                            Modelo.Modelo.closeConnection(con);
                        }
                    }
                    if (lbl_estado.Text == "MODIFICACION")
                    {
                        SqlCommand comando = new SqlCommand("UPDATE NUNCA_TAXI.Turnos SET Tu_Hora_Ini=@h_ini,Tu_Hora_Fin=@h_fin,Tu_Descripcion=@desc,Tu_Valor_Ficha=@ficha,Tu_Valor_Bandera=@bandera,Tu_Habilitado=@habi WHERE Tu_Descripcion = '" + tb_desc.Text + "'", con);
                        comando.Parameters.AddWithValue("h_ini", tb_ini.Text);
                        comando.Parameters.AddWithValue("h_fin", tb_fin.Text);
                        comando.Parameters.AddWithValue("desc", tb_desc.Text);
                        comando.Parameters.AddWithValue("ficha", Convert.ToDecimal(tb_ficha.Text));
                        comando.Parameters.AddWithValue("bandera", Convert.ToDecimal(tb_bandera.Text));
                        if (cb_habilitado.Checked == true)
                        {
                            comando.Parameters.AddWithValue("habi", 1);
                        }
                        else if (cb_habilitado.Checked == false)
                        {
                            comando.Parameters.AddWithValue("habi", 0);
                        }

                        try
                        {
                            Modelo.Modelo.openConnection(con);
                            comando.ExecuteNonQuery();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                        finally
                        {
                            Modelo.Modelo.closeConnection(con);
                        }
                    }
                    if (lbl_estado.Text == "BAJA")
                    {
                        SqlCommand comando = new SqlCommand("UPDATE NUNCA_TAXI.Turnos SET Tu_Habilitado=@habi WHERE Tu_Descripcion = '" + tb_desc.Text + "'", con);
                        comando.Parameters.AddWithValue("habi", 0);

                        try
                        {
                            Modelo.Modelo.openConnection(con);
                            comando.ExecuteNonQuery();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                        finally
                        {
                            Modelo.Modelo.closeConnection(con);
                        }
                    }
                }
            }
            else
            {
                MessageBox.Show("Por favor, complete todos los campos para continuar");
            }
        }
    }
}
